#pragma once
#include <stdio.h>
#include<math.h>
#include <stdbool.h>
#include <stdlib.h>
#include <assert.h>

typedef int DataType;

typedef struct
{
	int val;
	struct ListNode* Next;
	struct ListNode* Prev;

}ListNode;

void ListPrint(ListNode* phead);
void ListDestory(ListNode** pphead);

ListNode* CreatNode();

void PushBack(ListNode** phead, DataType x);
void PushFront(ListNode** phead, DataType x);

void PopBack(ListNode** phead);
void PopFront(ListNode** phead);

ListNode* Find(ListNode* phead, DataType x);

void Insert(ListNode** phead, int pos, DataType x);
void Erase(ListNode** phead, int pos);